草庐IT

c++ - bisonc++ 多态继承

全部标签

c# - ef-core 加载嵌套 tph 继承成员的集合属性

给定以下类结构publicclassParent{publicGuidId{get;publicListChildren{get;set;}}publicabstractclassBaseChild{publicintId{get;set;}publicstringChildName{get;set;}}publicclassNormalChild:BaseChild{publicDateTimeBirthDate{get;set;}}publicclassRichChild:BaseChild{publicListOffshoreAccounts{get;set;}}publiccl

c# - 如何访问 winforms 设计器中的继承控件

我正在制作一些控件,它们必须具有相同的外观和一些共同的行为,尽管它们适用于不同类型的输入。所以我创建了一个继承自UserControl的BaseClass,我所有的控件都继承自BaseClass。但是,如果我在设计器中为BaseClass添加控件,例如TableLayoutPanel,则在设计继承类时无法访问它们。我看到了TableLayoutPanel,但即使他受到“保护”,我也无法修改它或通过设计器将控件放入其中。我可以通过代码访问它,但我不想失去使用设计器的能力。现在,我只是从BaseClass中删除了所有控件,在每个继承类中添加了布局和所有公共(public)控件,然后使用引用

c# - 将条件替换为多态重构还是类似的?

我曾尝试问过这个问题的一个变种。我得到了一些有用的答案,但仍然没有什么对我来说很合适。在我看来,这真的不应该那么难,但我无法找到一个优雅的简单解决方案。(这是我的上一篇文章,但是请首先尝试看一下此处作为程序代码说明的问题,以免受到前面的解释的影响,该解释似乎导致非常复杂的解决方案:Designpatternforcostcalculatorapp?)基本上,问题是为可以包含许多服务的项目创建所需小时数的计算器。在这种情况下,是“写作”和“分析”。对于不同的服务,小时数的计算方式有所不同:通过将“每个产品”的小时率乘以产品数来计算写作,并且项目中包含的产品越多,小时率就越低,但是总的小时

c# - 可以从 WebClient 继承而我的代码不是 "design time component"吗?

我有一段代码是这样的:publicclassNoFollowWebClient:WebClient{protectedoverrideWebRequestGetWebRequest(Uriaddress){varrequest=(HttpWebRequest)base.GetWebRequest(address);request.AllowAutoRedirect=false;returnrequest;}}不过,每当我将它添加到.cs文件时,VisualStudio2012都会以其无穷的智慧将我的C#源文件转换为“设计时组件”。因此,当我现在双击该文件时,我看到的不是我的C#代码,而

c# - 在继承类中使用锁的最佳实践是什么

我想知道一个类是否继承自另一个类,是让类共享一个在基类定义的锁对象还是在每个继承级别定义一个锁对象更好。一个非常简单的例子,在类的每一层都有一个锁对象publicclassFoo{privateobjectthisLock=newobject();privateintivalue;publicintValue{get{lock(thisLock){returnivalue;}}set{lock(thisLock){ivalue=value;}}}}publicclassFoo2:Foo{privateobjectthisLock2=newobject();publicintDouble

c# - 类不继承自对象?

我正在研究一种使用反射来检查方法的参数类型的方法。此方法遍历ParameterInfo并使用这些参数的类型执行某些操作。我一直假设如果TypeInfo.IsClass为true,则此类型是一个类并且始终(间接)派生​​自类型object(当然,当类型是object本身时除外)。因此,如果TypeInfo.IsClass为真,则必须设置TypeInfo.BaseType。好吧,我的假设是错误的!有些类不是从object类型派生的。我的假设搞砸了我的代码。例如:Typetype=typeof(int).MakeByRefType();type.IsClass将为true并且type.Bas

c# - 接口(interface)继承和new关键字

我要:publicinterfaceIBase{MyObjectProperty1{get;set;}}publicinterfaceIBaseSub:IBase{newTProperty1{get;set;}}publicclassMyClass:IBaseSub{publicYourObjectProperty1{get;set;}}但这不能编译。它给出了错误://ThisclassmustimplementtheinterfacememberIBase.Property1任何人都可以阐明这一点吗?我认为它应该工作..谢谢 最佳答案

c# - 数组从哪里继承(即 .int[] )

当创建一个数组时,比如int[],这是否继承自任何东西?我认为它可能继承自System.Array,但在查看编译的CIL后它似乎并非如此。考虑到您可以在数组上调用方法和访问属性,我认为它可能继承自System.Array或类似的东西。即int[]arr={1,2};arr.Initialize();arr.Length; 最佳答案 所有数组都派生自System.Array.来自(公认的古老)editionofMSDNmagazine:AllarraytypesareimplicitlyderivedfromSystem.Array,

c# - 多态性不适用于 C# 中泛型类的调用

在以下情况下多态性似乎无法正常工作我有以下定义:interfaceBaseInterface{}interfaceNewInterface:BaseInterface{}classNewClass:NewInterface{}classGenericClasswhereT:BaseInterface{publicstringWhoIAm(TanObject){returnTestPolymorphism.CheckInterface(anObject);}}classImplementedClass:GenericClass{}classTestPolymorphism{publics

c# - 具有多态子对象的类型的 Json.Net 序列化

我们希望能够从/向C#类序列化/反序列化json,主类具有多态子对象的实例。使用Json.Net的TypeNameHandling.Auto设置很容易做到这一点。但是,我们希望在没有“$type”字段的情况下这样做。第一个想法是能够将“$type”重命名为我们选择的值,并使该类型的值成为一个可以正确映射子类型的枚举。我还没有将其视为一种选择,但很高兴听到它是否可行。第二个想法是沿着以下几行……下面是类的第一次传递,顶级类有一个指示符(SubTypeType),指示子对象(SubTypeData)中包含什么类型的数据。我深入研究了Json.Net文档并尝试了一些方法,但没有成功。我们目前